/* 
 * File:   OperacionSincronizacionArchivosNuevosEnCliente.h
 * Author: maximiliano
 *
 * Created on 15 de junio de 2013, 10:41
 */

#ifndef OPERACIONSINCRONIZACIONARCHIVOSNUEVOSENCLIENTE_H
#define	OPERACIONSINCRONIZACIONARCHIVOSNUEVOSENCLIENTE_H
#include <stdint.h>
#include "client_FileServiceProxy.h"
#include "client_OperacionSecuencial.h"
#include "common_Repositorio.h"
#include "common_RepoItem.h"

using namespace TP::Archivos;
using namespace TP::Servicios;

namespace TP { namespace Operaciones {
    
class OperacionSincronizacionArchivosNuevosEnCliente : public OperacionSecuencial  {
public:
    OperacionSincronizacionArchivosNuevosEnCliente(const uint32_t &pToken, Repositorio **pRepositorioLocal, FileServiceProxy* pFileService);
    
    virtual ~OperacionSincronizacionArchivosNuevosEnCliente();
       
    virtual void ejecutar();
    
private:

    void CalcularEsquemaTrabajo();
    
    SetRepoItem getArchivosAPublicar();
    
    SetRepoItem getArchivosADescargar();

    void CalcularEsquemaTrabajoArchivosADescargar();
    
    void CalcularEsquemaTrabajoArchivosAPublicar();
    
    Repositorio **_repositorioLocal
              , **_repositorioServidor;
    
    FileServiceProxy *_fileService;
};
}}

#endif	/* OPERACIONSINCRONIZACIONARCHIVOSNUEVOSENCLIENTE_H */

